<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Indicator.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Unit.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Process.php';
/**
 * Класс-сущность "ответственность" структурного подразделения за некоторый 
 * целевой показатель
 */
class Responsibility extends Entity{
	/** 
	 * Мониторинг TRUE - мониторинг (просмотр) показателей
	 * FALSE - заполнение показателей 
	 */
	private $monitoring;
	/** 
	 * Плановое значение показателя, которое может быть "спущено сверху".
	 * Если плановое значение определено у indicator, то
	 * мы его здесь переопределять не можем,
	 * т.к. оно определено для всех структурных подразделений 
	 */
	private $planValue;
	/** Структурное подразделение для которого определен плановый показатель */
	private $department;
	/** Идентификатор процесса, к которому относится показатель */
	private $indicator;
	/** 
	 * Метод, возвращающий мониторинг (TRUE || FALSE)
	 * @return $this->monitoring Мониторинг
	 */
	public function isMonitoring() {
		return $this->monitoring;
	}
	/**
	 * Метод, устанавливающий значение монитогринга
	 * @param $monitoring Значение мониторинга
	 */
	public function setMonitoring($monitoring) {
		$this->monitoring = (bool)$monitoring;
	}
	/**
	 * Метод, возвращающий плановое значение,
	 * @return $this->planValue Плановое значение
	 */
	public function getPlanValue() {
		return $this->planValue;
	}
	/**
	 * Метод, устанавливающий плановое значение,
	 * @param unknown_type $planValue Значение планового значения
	 */
	public function setPlanValue($planValue) {
		if($planValue !== null) {
			$this->planValue = 0.0+$planValue;
		} else {
			$this->planValue = null;
		}
	}
	/**
	 * Метод, возвращающий структурное подразделение,
	 * для которого определен плановый показатель (planValue)
	 * @return $this->department Структурное подразделение
	 */
	public function getDepartment() {
		return $this->department;
	}
	/**
	 * Метод, устанавливающий значение структурного подразделения
	 * @param Department $department Значение структурного подразделения
	 */
	public function setDepartment(Department $department) {
		$this->department = $department;
	}
	/**
	 * Метод, возвращающий идентификатор процесса, к которому относится показатель
	 * @return $this->indicator Идентификатора процесса, к которому относится показатель
	 */
	public function getIndicator() {
		return $this->indicator;
	}
	/**
	 * Метод, устанавливающий значение идентификатора процесса, к которому относится показатель
	 * @param Indicator $indicator Значение идентификатора процесса
	 */
	public function setIndicator(Indicator $indicator) {
		$this->indicator = $indicator;
	}
}
?>